package com.bestow.loan.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.bestow.common.annotation.Excel;
import com.bestow.common.core.domain.BaseEntity;

/**
 * 申购/赎回管理对象 inv_finance_purchase
 * 
 * @author liliu
 * @date 2022-09-04
 */
public class InvFinancePurchase extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 理财申购id */
    private Long financePurchaseId;

    /** 理财产品id */
    @Excel(name = "理财产品id")
    private Long financeProductsId;

    /** 理财申购编号 */
    @Excel(name = "理财申购编号")
    private String financePurchaseNumber;

    /** 投资业务名称 */
    @Excel(name = "投资业务名称")
    private String financePurchaseName;

    /** 计划投资金额 */
    @Excel(name = "计划投资金额")
    private Long planInvestmentAmount;

    /** 申购金额 */
    @Excel(name = "申购金额")
    private Long purchaseAmount;

    /** 赎回金额 */
    @Excel(name = "赎回金额")
    private Long redemptionAmount;

    /** 计划申购时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划申购时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planPurchaseDate;

    /** 申购日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "申购日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date actualPurchaseDate;

    /** 预计赎回到期日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预计赎回到期日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expectedDueDate;

    /** 赎回到期日修改日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "赎回到期日修改日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expectedDueDateChange;

    /** 赎回到期日修改标识 */
    @Excel(name = "赎回到期日修改标识")
    private String expectedDueDateChangeFlag;

    /** 实际投资金额 */
    @Excel(name = "实际投资金额")
    private BigDecimal actualInvestmentAmount;

    /** 备注 */
    @Excel(name = "备注")
    private String description;

    /** 转出账户id */
    @Excel(name = "转出账户id")
    private Integer rollOutAccountId;

    /** 转出金额总额 */
    @Excel(name = "转出金额总额")
    private BigDecimal rollOutAmount;

    /** 内扣申购费用总额 */
    @Excel(name = "内扣申购费用总额")
    private BigDecimal rollInAmount;

    /** 申购审批状态 */
    @Excel(name = "申购审批状态")
    private String purchaseStatus;

    /** $column.columnComment */
    private String status;

    /** 赎回状态 */
    @Excel(name = "赎回状态")
    private String redemptionStatus;

    /** 借方科目 */
    @Excel(name = "借方科目")
    private String debitAccount;

    /** 单据类型 */
    @Excel(name = "单据类型")
    private String documentType;

    /** 单据类别 */
    @Excel(name = "单据类别")
    private String documentCategory;

    /** 业务类型 */
    @Excel(name = "业务类型")
    private String businessType;

    /** 月末收益预计收录标识 */
    @Excel(name = "月末收益预计收录标识")
    private String monthCollectionFlag;

    /** 申购剩余可赎回金额 */
    @Excel(name = "申购剩余可赎回金额")
    private Long leftRedemptionAmount;

    /** 年化收益率 */
    @Excel(name = "年化收益率")
    private Long annualYield;

    /** 历史数据标识 */
    private String historyFlag;

    /** $column.columnComment */
    private Long sourceAttachmentId;

    /** $column.columnComment */
    private String refV01;

    /** $column.columnComment */
    private String refV02;

    /** $column.columnComment */
    private String refV03;

    /** $column.columnComment */
    private String refV04;

    /** $column.columnComment */
    private String refV05;

    /** $column.columnComment */
    private String refV06;

    /** $column.columnComment */
    private String refV07;

    /** $column.columnComment */
    private String refV08;

    /** $column.columnComment */
    private String refV09;

    /** $column.columnComment */
    private String refV10;

    /** $column.columnComment */
    private String refV11;

    /** $column.columnComment */
    private String refV12;

    /** $column.columnComment */
    private String refV13;

    /** $column.columnComment */
    private String refV14;

    /** $column.columnComment */
    private String refV15;

    /** $column.columnComment */
    private Long refN01;

    /** $column.columnComment */
    private Long refN02;

    /** $column.columnComment */
    private Long refN03;

    /** $column.columnComment */
    private Long refN04;

    /** $column.columnComment */
    private Long refN05;

    /** $column.columnComment */
    private Long refN06;

    /** $column.columnComment */
    private Long refN07;

    /** $column.columnComment */
    private Long refN08;

    /** $column.columnComment */
    private Long refN09;

    /** $column.columnComment */
    private Long refN10;

    /** $column.columnComment */
    private Date refD01;

    /** $column.columnComment */
    private Date refD02;

    /** $column.columnComment */
    private Date refD03;

    /** $column.columnComment */
    private Date refD04;

    /** $column.columnComment */
    private Date refD05;

    /** $column.columnComment */
    private Date refD06;

    /** $column.columnComment */
    private Date refD07;

    /** $column.columnComment */
    private Date refD08;

    /** $column.columnComment */
    private Date refD09;

    /** $column.columnComment */
    private Date refD10;

    public void setFinancePurchaseId(Long financePurchaseId) 
    {
        this.financePurchaseId = financePurchaseId;
    }

    public Long getFinancePurchaseId() 
    {
        return financePurchaseId;
    }
    public void setFinanceProductsId(Long financeProductsId) 
    {
        this.financeProductsId = financeProductsId;
    }

    public Long getFinanceProductsId() 
    {
        return financeProductsId;
    }
    public void setFinancePurchaseNumber(String financePurchaseNumber) 
    {
        this.financePurchaseNumber = financePurchaseNumber;
    }

    public String getFinancePurchaseNumber() 
    {
        return financePurchaseNumber;
    }
    public void setFinancePurchaseName(String financePurchaseName) 
    {
        this.financePurchaseName = financePurchaseName;
    }

    public String getFinancePurchaseName() 
    {
        return financePurchaseName;
    }
    public void setPlanInvestmentAmount(Long planInvestmentAmount) 
    {
        this.planInvestmentAmount = planInvestmentAmount;
    }

    public Long getPlanInvestmentAmount() 
    {
        return planInvestmentAmount;
    }
    public void setPurchaseAmount(Long purchaseAmount) 
    {
        this.purchaseAmount = purchaseAmount;
    }

    public Long getPurchaseAmount() 
    {
        return purchaseAmount;
    }
    public void setRedemptionAmount(Long redemptionAmount) 
    {
        this.redemptionAmount = redemptionAmount;
    }

    public Long getRedemptionAmount() 
    {
        return redemptionAmount;
    }
    public void setPlanPurchaseDate(Date planPurchaseDate) 
    {
        this.planPurchaseDate = planPurchaseDate;
    }

    public Date getPlanPurchaseDate() 
    {
        return planPurchaseDate;
    }
    public void setActualPurchaseDate(Date actualPurchaseDate) 
    {
        this.actualPurchaseDate = actualPurchaseDate;
    }

    public Date getActualPurchaseDate() 
    {
        return actualPurchaseDate;
    }
    public void setExpectedDueDate(Date expectedDueDate) 
    {
        this.expectedDueDate = expectedDueDate;
    }

    public Date getExpectedDueDate() 
    {
        return expectedDueDate;
    }
    public void setExpectedDueDateChange(Date expectedDueDateChange) 
    {
        this.expectedDueDateChange = expectedDueDateChange;
    }

    public Date getExpectedDueDateChange() 
    {
        return expectedDueDateChange;
    }
    public void setExpectedDueDateChangeFlag(String expectedDueDateChangeFlag) 
    {
        this.expectedDueDateChangeFlag = expectedDueDateChangeFlag;
    }

    public String getExpectedDueDateChangeFlag() 
    {
        return expectedDueDateChangeFlag;
    }
    public void setActualInvestmentAmount(BigDecimal actualInvestmentAmount) 
    {
        this.actualInvestmentAmount = actualInvestmentAmount;
    }

    public BigDecimal getActualInvestmentAmount() 
    {
        return actualInvestmentAmount;
    }
    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }
    public void setRollOutAccountId(Integer rollOutAccountId) 
    {
        this.rollOutAccountId = rollOutAccountId;
    }

    public Integer getRollOutAccountId() 
    {
        return rollOutAccountId;
    }
    public void setRollOutAmount(BigDecimal rollOutAmount) 
    {
        this.rollOutAmount = rollOutAmount;
    }

    public BigDecimal getRollOutAmount() 
    {
        return rollOutAmount;
    }
    public void setRollInAmount(BigDecimal rollInAmount) 
    {
        this.rollInAmount = rollInAmount;
    }

    public BigDecimal getRollInAmount() 
    {
        return rollInAmount;
    }
    public void setPurchaseStatus(String purchaseStatus) 
    {
        this.purchaseStatus = purchaseStatus;
    }

    public String getPurchaseStatus() 
    {
        return purchaseStatus;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    public void setRedemptionStatus(String redemptionStatus) 
    {
        this.redemptionStatus = redemptionStatus;
    }

    public String getRedemptionStatus() 
    {
        return redemptionStatus;
    }
    public void setDebitAccount(String debitAccount) 
    {
        this.debitAccount = debitAccount;
    }

    public String getDebitAccount() 
    {
        return debitAccount;
    }
    public void setDocumentType(String documentType) 
    {
        this.documentType = documentType;
    }

    public String getDocumentType() 
    {
        return documentType;
    }
    public void setDocumentCategory(String documentCategory) 
    {
        this.documentCategory = documentCategory;
    }

    public String getDocumentCategory() 
    {
        return documentCategory;
    }
    public void setBusinessType(String businessType) 
    {
        this.businessType = businessType;
    }

    public String getBusinessType() 
    {
        return businessType;
    }
    public void setMonthCollectionFlag(String monthCollectionFlag) 
    {
        this.monthCollectionFlag = monthCollectionFlag;
    }

    public String getMonthCollectionFlag() 
    {
        return monthCollectionFlag;
    }
    public void setLeftRedemptionAmount(Long leftRedemptionAmount) 
    {
        this.leftRedemptionAmount = leftRedemptionAmount;
    }

    public Long getLeftRedemptionAmount() 
    {
        return leftRedemptionAmount;
    }
    public void setAnnualYield(Long annualYield) 
    {
        this.annualYield = annualYield;
    }

    public Long getAnnualYield() 
    {
        return annualYield;
    }
    public void setHistoryFlag(String historyFlag) 
    {
        this.historyFlag = historyFlag;
    }

    public String getHistoryFlag() 
    {
        return historyFlag;
    }
    public void setSourceAttachmentId(Long sourceAttachmentId) 
    {
        this.sourceAttachmentId = sourceAttachmentId;
    }

    public Long getSourceAttachmentId() 
    {
        return sourceAttachmentId;
    }
    public void setRefV01(String refV01) 
    {
        this.refV01 = refV01;
    }

    public String getRefV01() 
    {
        return refV01;
    }
    public void setRefV02(String refV02) 
    {
        this.refV02 = refV02;
    }

    public String getRefV02() 
    {
        return refV02;
    }
    public void setRefV03(String refV03) 
    {
        this.refV03 = refV03;
    }

    public String getRefV03() 
    {
        return refV03;
    }
    public void setRefV04(String refV04) 
    {
        this.refV04 = refV04;
    }

    public String getRefV04() 
    {
        return refV04;
    }
    public void setRefV05(String refV05) 
    {
        this.refV05 = refV05;
    }

    public String getRefV05() 
    {
        return refV05;
    }
    public void setRefV06(String refV06) 
    {
        this.refV06 = refV06;
    }

    public String getRefV06() 
    {
        return refV06;
    }
    public void setRefV07(String refV07) 
    {
        this.refV07 = refV07;
    }

    public String getRefV07() 
    {
        return refV07;
    }
    public void setRefV08(String refV08) 
    {
        this.refV08 = refV08;
    }

    public String getRefV08() 
    {
        return refV08;
    }
    public void setRefV09(String refV09) 
    {
        this.refV09 = refV09;
    }

    public String getRefV09() 
    {
        return refV09;
    }
    public void setRefV10(String refV10) 
    {
        this.refV10 = refV10;
    }

    public String getRefV10() 
    {
        return refV10;
    }
    public void setRefV11(String refV11) 
    {
        this.refV11 = refV11;
    }

    public String getRefV11() 
    {
        return refV11;
    }
    public void setRefV12(String refV12) 
    {
        this.refV12 = refV12;
    }

    public String getRefV12() 
    {
        return refV12;
    }
    public void setRefV13(String refV13) 
    {
        this.refV13 = refV13;
    }

    public String getRefV13() 
    {
        return refV13;
    }
    public void setRefV14(String refV14) 
    {
        this.refV14 = refV14;
    }

    public String getRefV14() 
    {
        return refV14;
    }
    public void setRefV15(String refV15) 
    {
        this.refV15 = refV15;
    }

    public String getRefV15() 
    {
        return refV15;
    }
    public void setRefN01(Long refN01) 
    {
        this.refN01 = refN01;
    }

    public Long getRefN01() 
    {
        return refN01;
    }
    public void setRefN02(Long refN02) 
    {
        this.refN02 = refN02;
    }

    public Long getRefN02() 
    {
        return refN02;
    }
    public void setRefN03(Long refN03) 
    {
        this.refN03 = refN03;
    }

    public Long getRefN03() 
    {
        return refN03;
    }
    public void setRefN04(Long refN04) 
    {
        this.refN04 = refN04;
    }

    public Long getRefN04() 
    {
        return refN04;
    }
    public void setRefN05(Long refN05) 
    {
        this.refN05 = refN05;
    }

    public Long getRefN05() 
    {
        return refN05;
    }
    public void setRefN06(Long refN06) 
    {
        this.refN06 = refN06;
    }

    public Long getRefN06() 
    {
        return refN06;
    }
    public void setRefN07(Long refN07) 
    {
        this.refN07 = refN07;
    }

    public Long getRefN07() 
    {
        return refN07;
    }
    public void setRefN08(Long refN08) 
    {
        this.refN08 = refN08;
    }

    public Long getRefN08() 
    {
        return refN08;
    }
    public void setRefN09(Long refN09) 
    {
        this.refN09 = refN09;
    }

    public Long getRefN09() 
    {
        return refN09;
    }
    public void setRefN10(Long refN10) 
    {
        this.refN10 = refN10;
    }

    public Long getRefN10() 
    {
        return refN10;
    }
    public void setRefD01(Date refD01) 
    {
        this.refD01 = refD01;
    }

    public Date getRefD01() 
    {
        return refD01;
    }
    public void setRefD02(Date refD02) 
    {
        this.refD02 = refD02;
    }

    public Date getRefD02() 
    {
        return refD02;
    }
    public void setRefD03(Date refD03) 
    {
        this.refD03 = refD03;
    }

    public Date getRefD03() 
    {
        return refD03;
    }
    public void setRefD04(Date refD04) 
    {
        this.refD04 = refD04;
    }

    public Date getRefD04() 
    {
        return refD04;
    }
    public void setRefD05(Date refD05) 
    {
        this.refD05 = refD05;
    }

    public Date getRefD05() 
    {
        return refD05;
    }
    public void setRefD06(Date refD06) 
    {
        this.refD06 = refD06;
    }

    public Date getRefD06() 
    {
        return refD06;
    }
    public void setRefD07(Date refD07) 
    {
        this.refD07 = refD07;
    }

    public Date getRefD07() 
    {
        return refD07;
    }
    public void setRefD08(Date refD08) 
    {
        this.refD08 = refD08;
    }

    public Date getRefD08() 
    {
        return refD08;
    }
    public void setRefD09(Date refD09) 
    {
        this.refD09 = refD09;
    }

    public Date getRefD09() 
    {
        return refD09;
    }
    public void setRefD10(Date refD10) 
    {
        this.refD10 = refD10;
    }

    public Date getRefD10() 
    {
        return refD10;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("financePurchaseId", getFinancePurchaseId())
            .append("financeProductsId", getFinanceProductsId())
            .append("financePurchaseNumber", getFinancePurchaseNumber())
            .append("financePurchaseName", getFinancePurchaseName())
            .append("planInvestmentAmount", getPlanInvestmentAmount())
            .append("purchaseAmount", getPurchaseAmount())
            .append("redemptionAmount", getRedemptionAmount())
            .append("planPurchaseDate", getPlanPurchaseDate())
            .append("actualPurchaseDate", getActualPurchaseDate())
            .append("expectedDueDate", getExpectedDueDate())
            .append("expectedDueDateChange", getExpectedDueDateChange())
            .append("expectedDueDateChangeFlag", getExpectedDueDateChangeFlag())
            .append("actualInvestmentAmount", getActualInvestmentAmount())
            .append("description", getDescription())
            .append("rollOutAccountId", getRollOutAccountId())
            .append("rollOutAmount", getRollOutAmount())
            .append("rollInAmount", getRollInAmount())
            .append("purchaseStatus", getPurchaseStatus())
            .append("status", getStatus())
            .append("redemptionStatus", getRedemptionStatus())
            .append("debitAccount", getDebitAccount())
            .append("documentType", getDocumentType())
            .append("documentCategory", getDocumentCategory())
            .append("businessType", getBusinessType())
            .append("monthCollectionFlag", getMonthCollectionFlag())
            .append("leftRedemptionAmount", getLeftRedemptionAmount())
            .append("annualYield", getAnnualYield())
            .append("historyFlag", getHistoryFlag())
            .append("sourceAttachmentId", getSourceAttachmentId())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("refV01", getRefV01())
            .append("refV02", getRefV02())
            .append("refV03", getRefV03())
            .append("refV04", getRefV04())
            .append("refV05", getRefV05())
            .append("refV06", getRefV06())
            .append("refV07", getRefV07())
            .append("refV08", getRefV08())
            .append("refV09", getRefV09())
            .append("refV10", getRefV10())
            .append("refV11", getRefV11())
            .append("refV12", getRefV12())
            .append("refV13", getRefV13())
            .append("refV14", getRefV14())
            .append("refV15", getRefV15())
            .append("refN01", getRefN01())
            .append("refN02", getRefN02())
            .append("refN03", getRefN03())
            .append("refN04", getRefN04())
            .append("refN05", getRefN05())
            .append("refN06", getRefN06())
            .append("refN07", getRefN07())
            .append("refN08", getRefN08())
            .append("refN09", getRefN09())
            .append("refN10", getRefN10())
            .append("refD01", getRefD01())
            .append("refD02", getRefD02())
            .append("refD03", getRefD03())
            .append("refD04", getRefD04())
            .append("refD05", getRefD05())
            .append("refD06", getRefD06())
            .append("refD07", getRefD07())
            .append("refD08", getRefD08())
            .append("refD09", getRefD09())
            .append("refD10", getRefD10())
            .toString();
    }
}
